Direcciones MAC
La dirección MAC tiene 6 bytes de longitud, lo que nos da
Suelen expresarse en notación hexadecimal, indicándose cada byte de la dirección mediante una pareja de números hexadecimales. Aunque las direcciones MAC se diseñaron para ser permanentes, hoy día es posible modificar la dirección MAC de un adaptador mediante un software apropiado.
El IEEE se encarga de gestionar el espacio de direcciones MAC, vende direcciones a las empresas que quieren fabricar adaptadores, de forma de tener direcciones MAC únicas.
Las direcciones MAC tienen una estructura plana y no varían dependiendo de a donde se lleve el adaptador.
Cuando un adaptador de un emisor quiere enviar una trama a otro adaptador de destino, inserta la dirección MAC del de destino en la trama y luego la envía a través de la red LAN.
Si se trata de una LAN de difusión, la trama será recibida y procesada por todos los demás adaptadores de la LAN. En particular, cada adaptador que reciba la trama comprobará si la dirección MAC de destino contenida en la trama se corresponde con su propia dirección MAC. Solo se pasará la trama “hacia arriba” si coincide la dirección MAC.
Dirección de difusión MAC : FF:FF:FF:FF:FF:FF, con esta dirección se quiere que todos los adaptadores reciban y procesen la trama enviada.
Lleva a cabo la tarea de traducir las direcciones de la capa de red y de enlace.
Un módulo ARP en el nodo emisor toma como entrada cualquier dirección IP de la misma LAN y devuelve la dirección MAC correspondiente. Resuelve direcciones IP solo para nodos en una misma subred.
Cada nodo tiene en su memoria una tabla ARP, que contiene las correspondencias entre las direcciones IP y las direcciones MAC.
Si no existe la entrada en la tabla para el nodo que se quiere, el nodo emisor utiliza el protocolo ARP para resolver la dirección. En primer lugar, el nodo emisor construye un paquete especial denominado paquete ARP. Un paquete ARP contiene varios campos, incluyendo las direcciones MAC e IP del emisor y el receptor. Los paquetes de consulta y de respuesta ARP tienen el mismo formato. El propósito del paquete de consulta ARP es consultar a todos los demás nodos de la subred con el fin de determinar la dirección MAC correspondiente a la dirección IP que está resolviendo.
Al recibir un mensaje ARP, cada nodo chequea si la IP coincide con la suya, el único en el que se produzca la coincidencia devolverá al nodo que ha realizado la consulta una respuesta ARP con la correspondencia deseada. El nodo que ha realizado la consulta podrá entonces actualizar su tabla ARP y enviar su datagrama IP, encapsulado dentro de una trama de la capa de enlace, cuya dirección de destino MAC es la del nodo que ha contestado a la anterior consulta ARP.
Protocolo plug-and-play, la tabla ARP se construye automáticamente y si un nodo se desconecta de la subred, su entrada en las tablas se eliminará (gracias a que se guarda un TTL en la tabla).
Para enviar un datagrama a un nodo fuera de una subred, la trama tiene que ser enviada con la dirección MAC del siguiente adaptador en el camino hacia el nodo fuera de la subred (next-hop) pero con la IP del nodo destino.
Supongamos que A quiere enviar un datagrama a B, y la dirección MAC de B no está en la tabla ARP de A.
Lo primero que hace A es hacer broadcast a un paquete ARP request, que contiene la dirección IP de B, a la dirección MAC de broadcast (FF-FF-FF-FF-FF-FF), por lo que cada dispositivo en la LAN recibe esta ARP request.
Una vez que B recibe el paquete ARP, responde a A con su dirección MAC (la de B), enviándo a la dirección MAC de A un paquete ARP reply.
Cuando A recibe estos datos, extrae la dirección MAC de B y la agrega a la tabla ARP (caché ARP), manteniéndola hasta que expira el TTL.
Consideremos el siguiente ejemplo:
Se desea enviar un datagrama IP desde A hacia B a través de R. El host emisor pasa el datagrama a su adaptador de red. Sin embargo, este debe indicar la dirección MAC de destino, que no es la dirección MAC de B (están en distinta subred), sino que debe ser de un dispositivo de la subred a la que pertenece A.
Para enviar un datagrama a B este debe pasar por el router R, por lo cual, la dirección MAC que se debe especificar es la de la interfaz del router por la cual pasa el datagrama, en este caso, aquella con IP 111.111.111.110. Luego, utilizando ARP obtiene la dirección MAC de esta interfaz (E6-E9-00-17-BB4B). Ahora que se conoce esta MAC, se crea un frame que contiene un datagrama direccionado a la IP de B y envía el frame en la Subred de A.
Cuando el router recibe en la interfaz 111.111.111.110 el paquete, lo pasa a su capa de red. Ahora, chequeando la tabla de Forwarding del router vemos la interfaz por la que el paquete debe salir para llegar a B. Esta interfaz luego pasa el paquete a su adaptador de red, que lo encapsula en un nuevo frame y lo envía a la subred 2, a la dirección MAC de B, obtenida mediante ARP. Luego envía el paquete, llegando al destino B.